<?php

namespace Gds\VenteBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * HistoryBonLivraisonClient
 *
 * @ORM\Table()
 * @ORM\Entity
 */
class HistoryBonLivraisonClient {

    /**
     * @ORM\ManyToOne(targetEntity="Gds\UserBundle\Entity\User", inversedBy="history_bon_livraison_client")
     * @ORM\JoinColumn(nullable=false)
     */
    private $user;

    /**
     * @ORM\ManyToOne(targetEntity="Gds\ArticleBundle\Entity\Departement", inversedBy="history_bon_livraison")
     * @ORM\JoinColumn()
     */
    private $departement;

    /**
     * @ORM\ManyToOne(targetEntity="Gds\VenteBundle\Entity\Client", inversedBy="history_bon_livraisons")
     * @ORM\JoinColumn(nullable=false)
     */
    private $client;

    /**
     * @ORM\OneToMany(targetEntity="Gds\VenteBundle\Entity\HistoryLigneBonLivraisonClient", mappedBy="history_bon_livraison", cascade={"persist", "remove"})
     */
    private $history_lignes_bon_livraison; // Ici commentaires prend un "s", car un article a plusieurs commentaires !
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var \DateTime $date
     *
     * @ORM\Column(name="date", type="date")
     */
    private $date;

    /**
     * @var integer $heure
     *
     * @ORM\Column(name="heure", type="integer")
     */
    private $heure;

    /**
     * @var string $reference
     *
     * @ORM\Column(name="reference", type="string", length=255)
     */
    private $reference;

    /**
     * @var float $reste
     *
     * @ORM\Column(name="reste", type="decimal", scale=3)
     */
    private $reste;

    /**
     * @var float $montant_ttc
     *
     * @ORM\Column(name="montant_blanc_ttc", type="decimal", scale=3)
     */
    private $montant_blanc_ttc;

    /**
     * @var float $montant_noir
     *
     * @ORM\Column(name="montant_noir_ttc", type="decimal", scale=3)
     */
    private $montant_noir_ttc;

    /**
     * @var boolean $is_supprimer
     *
     * @ORM\Column(name="is_supprimer", type="boolean")
     */
    private $is_supprimer;

    /**
     * @var boolean $is_cloturer
     *
     * @ORM\Column(name="is_cloturer", type="boolean")
     */
    private $is_cloturer;
        /**
     * @var boolean $is_facturer
     *
     * @ORM\Column(name="is_facturer", type="boolean")
     */
    private $is_facturer;

    /**
     * Constructor
     */
    public function __construct() {
        $this->lignes_bon_livraison = new \Doctrine\Common\Collections\ArrayCollection();
        $this->is_cloturer = false;
        $this->is_supprimer = false;
        $this->is_facturer = false;
    }

    public function __toString() {
        return $this->reference;
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId() {
        return $this->id;
    }

    /**
     * Set date
     *
     * @param \DateTime $date
     * @return HistoryBonLivraisonClient
     */
    public function setDate($date) {
        $this->date = $date;

        return $this;
    }

    /**
     * Get date
     *
     * @return \DateTime 
     */
    public function getDate() {
        return $this->date;
    }

    /**
     * Set heure
     *
     * @param integer $heure
     * @return HistoryBonLivraisonClient
     */
    public function setHeure($heure) {
        $this->heure = $heure;

        return $this;
    }

    /**
     * Get heure
     *
     * @return integer 
     */
    public function getHeure() {
        return $this->heure;
    }

    /**
     * Set reference
     *
     * @param string $reference
     * @return HistoryBonLivraisonClient
     */
    public function setReference($reference) {
        $this->reference = $reference;

        return $this;
    }

    /**
     * Get reference
     *
     * @return string 
     */
    public function getReference() {
        return $this->reference;
    }

    /**
     * Set reste
     *
     * @param float $reste
     * @return HistoryBonLivraisonClient
     */
    public function setReste($reste) {
        $this->reste = $reste;

        return $this;
    }

    /**
     * Get reste
     *
     * @return float 
     */
    public function getReste() {
        return $this->reste;
    }

    /**
     * Set montant_blanc_ttc
     *
     * @param float $montantBlancTtc
     * @return HistoryBonLivraisonClient
     */
    public function setMontantBlancTtc($montantBlancTtc) {
        $this->montant_blanc_ttc = $montantBlancTtc;

        return $this;
    }

    /**
     * Get montant_blanc_ttc
     *
     * @return float 
     */
    public function getMontantBlancTtc() {
        return $this->montant_blanc_ttc;
    }

    /**
     * Set montant_noir_ttc
     *
     * @param float $montantNoirTtc
     * @return HistoryBonLivraisonClient
     */
    public function setMontantNoirTtc($montantNoirTtc) {
        $this->montant_noir_ttc = $montantNoirTtc;

        return $this;
    }

    /**
     * Get montant_noir_ttc
     *
     * @return float 
     */
    public function getMontantNoirTtc() {
        return $this->montant_noir_ttc;
    }

    /**
     * Set is_supprimer
     *
     * @param boolean $isSupprimer
     * @return HistoryBonLivraisonClient
     */
    public function setIsSupprimer($isSupprimer) {
        $this->is_supprimer = $isSupprimer;

        return $this;
    }

    /**
     * Get is_supprimer
     *
     * @return boolean 
     */
    public function getIsSupprimer() {
        return $this->is_supprimer;
    }

    /**
     * Set is_cloturer
     *
     * @param boolean $isCloturer
     * @return HistoryBonLivraisonClient
     */
    public function setIsCloturer($isCloturer) {
        $this->is_cloturer = $isCloturer;

        return $this;
    }

    /**
     * Get is_cloturer
     *
     * @return boolean 
     */
    public function getIsCloturer() {
        return $this->is_cloturer;
    }

    /**
     * Set user
     *
     * @param \Gds\UserBundle\Entity\User $user
     * @return HistoryBonLivraisonClient
     */
    public function setUser(\Gds\UserBundle\Entity\User $user) {
        $this->user = $user;

        return $this;
    }

    /**
     * Get user
     *
     * @return \Gds\UserBundle\Entity\User 
     */
    public function getUser() {
        return $this->user;
    }

    /**
     * Set departement
     *
     * @param \Gds\ArticleBundle\Entity\Departement $departement
     * @return HistoryBonLivraisonClient
     */
    public function setDepartement(\Gds\ArticleBundle\Entity\Departement $departement = null) {
        $this->departement = $departement;

        return $this;
    }

    /**
     * Get departement
     *
     * @return \Gds\ArticleBundle\Entity\Departement 
     */
    public function getDepartement() {
        return $this->departement;
    }

    /**
     * Set client
     *
     * @param \Gds\VenteBundle\Entity\Client $client
     * @return HistoryBonLivraisonClient
     */
    public function setClient(\Gds\VenteBundle\Entity\Client $client) {
        $this->client = $client;

        return $this;
    }

    /**
     * Get client
     *
     * @return \Gds\VenteBundle\Entity\Client 
     */
    public function getClient() {
        return $this->client;
    }

    /**
     * Add history_lignes_bon_livraison
     *
     * @param \Gds\VenteBundle\Entity\HistoryLigneBonLivraisonClient $historyLignesBonLivraison
     * @return HistoryBonLivraisonClient
     */
    public function addHistoryLignesBonLivraison(\Gds\VenteBundle\Entity\HistoryLigneBonLivraisonClient $historyLignesBonLivraison) {
        $this->history_lignes_bon_livraison[] = $historyLignesBonLivraison;
        $historyLignesBonLivraison->setHistoryBonLivraison($this);
        return $this;
    }

    /**
     * Remove history_lignes_bon_livraison
     *
     * @param \Gds\VenteBundle\Entity\HistoryLigneBonLivraisonClient $historyLignesBonLivraison
     */
    public function removeHistoryLignesBonLivraison(\Gds\VenteBundle\Entity\HistoryLigneBonLivraisonClient $historyLignesBonLivraison) {
        $this->history_lignes_bon_livraison->removeElement($historyLignesBonLivraison);
    }

    /**
     * Get history_lignes_bon_livraison
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getHistoryLignesBonLivraison() {
        return $this->history_lignes_bon_livraison;
    }

    public function getMontantTtc() {
        return $this->montant_blanc_ttc + $this->montant_noir_ttc;
    }

    public function getTime() {
        $time = $this->getHeure();
        $sec = $time % 60;
        if ($sec < 10)
            $sec = '0' . $sec;
        $reste = (int) ($time / 60);
        $minute = $reste % 60;
        if ($minute < 10)
            $minute = '0' . $minute;
        $heure = (int) ($reste / 60);
        if ($heure < 10)
            $heure = '0' . $heure;
        $res = $heure . ':' . $minute . ':' . $sec;
        return $res;
    }


    /**
     * Set is_facturer
     *
     * @param boolean $isFacturer
     * @return HistoryBonLivraisonClient
     */
    public function setIsFacturer($isFacturer)
    {
        $this->is_facturer = $isFacturer;

        return $this;
    }

    /**
     * Get is_facturer
     *
     * @return boolean 
     */
    public function getIsFacturer()
    {
        return $this->is_facturer;
    }
}
